A typical industrial control network includes a programmable logic controller (PLC) and one or more input/output (I/O) devices. Input data is read by the I/O devices and transferred to the PLC. Logic at the PLC generates output data that is sent to the I/O devices to be applied to their output circuits.
One key factor in such a network is the relative timing of the inputs and outputs across the various I/O devices. An output is only considered correct if it has the proper level and the proper timing.
In terms of timing, the following elements are important:                I/O device input sequence, i.e., gathering inputs from physical circuits;        Transmission of inputs from physical circuits over the network;        PLC program execution, i.e., transform of inputs into outputs;        Transmission of outputs from a PLC over the network; and        I/O device output sequence, i.e., applying outputs from the PLC to physical output circuits.        
In an ideal system, the I/O device input sequence would have the attributes of a regular period, synchronization with transmission over the network, and synchronization with PLC program execution.
With respect to a regular period, control networks and the underlying control algorithms rely on a regular and consistent sampling period for inputs. Instability/irregularity in sampling can lead to instability in the overall control system.
With respect to synchronization with transmission over the network, if the input sequence is not synchronized with transmission of data over the network then, without substantial over-sampling of network data, there is no guarantee that all samples reach the PLC.
With respect to synchronization with PLC program execution, ideally the PLC program would execute with input data of the “same age” on every cycle. Consistent latency of this data can be accounted for by utilizing control algorithms. If the latency is not consistent, i.e., there is jitter in the input timing path, then the precision of the control is reduced.
Also in an ideal system, the device output sequence would have a similar set of attributes or a regular period, synchronization with outputs transmitted over the network, and synchronization with PLC program execution.
With respect to a regular period, control networks and control algorithms also require consistent output periods to have stable performance.
With respect to synchronization with outputs transmitted over the network, if the output sequence is not synchronized with receipt of data over the network then, without substantial over-sampling of network data, there is no guarantee that all samples from the PLC are delivered to the physical outputs.
With respect to synchronization with PLC program execution, similar to input latency, output latency should be consistent and predictable. Inconsistent latency of output data, i.e., jitter in the output timing path, will result in reduced precision of the control system.
The correlation between PLC program execution and output transmission over the network is entirely under the control of the PLC.
There are typically several types of data transmitted between a PLC and connected devices. Only certain, specific sets of data are of the time-critical nature described here. Various approaches are used to identify this data, depending on the specific protocol in use. For example, in networks utilizing the PROFIBUS communication standard it is data to a specific index, in networks utilizing the PROFINET standard there is a specific Ether-type and connection-specific frame type, in networks utilizing EtherNet/IP it is typically a specific UDP port number, and similarly for other protocols.
There are two basic classes of networks with respect to timing. Some networks operate in a command-response fashion, where all network traffic is controlled by the PLC. This type of network will be called a synchronous network. Examples of this type of network include those that utilize the PROFIBUS communication standard and those that use the Modbus/TCP communications protocol standard.
In other networks the I/O devices transmit input data to the PLC on their own schedule. This will be referred to as an asynchronous network. An example of this type of network is an Ethernet that meets the industrial standard identified as PROFINET.
In a synchronous network, the timing between input transmission and PLC program execution and output transmission over the network is under the control of the PLC. In an asynchronous network, the timing between input transmission and PLC program execution is not directly under the control of the PLC, rather the I/O device determines the timing of input transmission.
In a synchronous network the I/O device has direct control over the timing of the I/O cycle, while the PLC controls both the arrival of output data and the transmission of input data. In an asynchronous network the I/O device has direct control over the timing of the I/O cycle and the transmission of input data, while the PLC controls the timing of output data arrival.
Some networks provide extensions to control this timing. Those networks typically operate by providing a mechanism for synchronization of clocks on the I/O devices with a common clock source, typically on the PLC or on a network node specifically for that purpose. By having a single clock base across all of the I/O devices in the network and the PLC, along with protocol extensions to manage I/O timing based on those clocks, high-performing networks can be built that solve the problem of I/O and processing jitter. Examples of these network extensions include those that are commonly referred to as: CIP-Sync (Common Industrial Protocol), PROFINET IRT (isochronous real time), and PROFIBUS DP-V3 (decentralized peripherals, version 3).
Networks that provide such extensions impose additional hardware requirements on I/O devices and network infrastructure, along with additional complexity and cost in the I/O device software and substantially higher cost for compatible PLCs.
A common approach to organizing the I/O timing on an I/O device is to provide each I/O device with a timer and to base everything on a single timer event. For example, the I/O cycle for the I/O device may be organized as follows:                1. The I/O device timer fires;        2. The I/O device updates output data from network layer of software;        3. The I/O device reads inputs from its associated physical circuits and writes output data to the physical output circuits;        4. The I/O device updates input data to network layer of software; and        5. The input data is transmitted over the network.        
The timing of incoming data, i.e., output data from the PLC, is completely asynchronous. It can arrive at any point in the above sequence, or, as the PLC and the I/O device come into phase, the PLC output data may arrive twice during one sequence and not at all in a following sequence, resulting in a set of outputs being skipped. At best, even when not perfectly in phase, the latency will vary by the I/O period. That is, latency from output transmission on the network 100 to the time that outputs are updated at the physical circuits 203 I/O will vary from a base latency to the base latency plus the I/O period.
For example, if the minimum base latency of an output path is 200 microseconds and the I/O period is 10 milliseconds, then the latency will vary from 200 microseconds to 10.2 milliseconds. Taking into account the case where PLC 101 and I/O device 103 are nearly in phase and an output set is missed, the maximum output latency is 20.2 milliseconds.
Similar timing applies to input data to the PLC because the PLC is not synchronized to the production time of the I/O device.